package cn.tedu.csmall.product.webapi.mapper;

import cn.tedu.csmall.pojo.entity.Category;
import cn.tedu.csmall.pojo.vo.CategoryListItemVO;
import cn.tedu.csmall.pojo.vo.CategoryStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository//如果无此注解,Idea可能提示无法装配的错误,但不影像运行
public interface CategoryMapper {

    /**
     * 插入类别数据
     * @param category 要插入的类别数据
     * @return 受影响的行数
     */
    int insert(Category category);

    /**
     * 根据name查询类别数据
     * @param name 要查询的名字name
     * @return 查询的结果
     */
    CategoryStandardVO getByName(String name);

    /**
     * 根据id查询类别数据
     * @param id 要查询的名字id
     * @return 查询的结果
     */
    CategoryStandardVO getById(Long id);

    /**
     * 通过id更新类别数据isParent(是否为父级)
     * @param id 要更新的类别数据id
     * @param parent 是否要更新的字段is_parent为父级   1:是;  0:否
     * @return 受影响的行数
     */
    int updateParentById(@Param("id") Long id,@Param("parent") Integer parent);

    /**
     * 查询所有类别
     * @return 类别得列表,如果数据表中无数据,则返回长度为0的列表
     */
    List<CategoryListItemVO> list();

    /**
     * 查询所有类别,个列表项是列表的详情数据
     * @return 类别得列表,如果数据表中无数据,则返回长度为0的列表
     */
    List<CategoryStandardVO> listDetails();
}
